/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package fr.unice.managedbeans;

import fr.unice.miage.entities.CompteBanquaire;
import fr.unice.miage.entities.Utilisateur;
import fr.unice.miage.sessions.GestionnaireDeCompteBancaire;
import fr.unice.miage.sessions.GestionnaireUtilisateur;
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import java.io.Serializable;
import javax.ejb.EJB;

/**
 *
 * @author remi
 */
@Named(value = "utilisateursMBean")
@SessionScoped
public class UtilisateursMBean implements Serializable {

    @EJB
    private GestionnaireUtilisateur gestionnaireUtilisateur;

    @EJB
    private GestionnaireDeCompteBancaire gestionnaireDeCompteBancaire;
    
    private String login;
    private String password;
    private Utilisateur current;
    
    public Utilisateur getCurrent() {
        return current;
    }

    public void setCurrent(Utilisateur current) {
        this.current = current;
    }
    
    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
    
    public boolean isOnline()
    {
        if(this.current != null)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    
    
    public void logout()
    {
        this.login = "";
        this.password = "";
        this.current = null;
    }
    
    public String checkLogin()
    {
        
        int i = gestionnaireUtilisateur.getCountUser();
        if(i < 1)
            this.creerPremiersUtilisateurs();
        
        boolean ok = gestionnaireUtilisateur.acceptConnexion(this.login, this.password);
        if(ok == true)
        {
            this.current = gestionnaireUtilisateur.getUtilisateurByLogin(this.login);
            return "success";
        }
        else
        {
            this.current = null;
            return "fail";
        }
    }
    
    public void creerPremiersUtilisateurs()
    {
        Utilisateur remi = gestionnaireUtilisateur.creeUtilisateur("remi", "qsdqsd");
        CompteBanquaire cbRemi = gestionnaireDeCompteBancaire.creerCompte(remi, "Compte courant", 1000);
        gestionnaireUtilisateur.addCompte(remi, cbRemi);


        CompteBanquaire cbRemi2 = gestionnaireDeCompteBancaire.creerCompte(remi, "Depot", 500);
        gestionnaireUtilisateur.addCompte(remi, cbRemi2);

        Utilisateur jey = gestionnaireUtilisateur.creeUtilisateur("jey", "azerty");
        CompteBanquaire cbJey = gestionnaireDeCompteBancaire.creerCompte(jey, "Compte courant", 1500);
        CompteBanquaire cbJey2 = gestionnaireDeCompteBancaire.creerCompte(jey, "Livret Jeune", 10000);
        gestionnaireUtilisateur.addCompte(jey, cbJey);
        gestionnaireUtilisateur.addCompte(jey, cbJey2);
        
        
    }
    
}
